﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Dados.ValueObjects;
using Dados.INFTURDataSetTableAdapters;
using Dados.ClassesSQLServer;

namespace Negocios
{
    public class VendaPassagemBO
    {
        private int id;

        public int Id
        {
            get { return id; }
            set { id = value;}
        }

        private ClienteBO cBO;

        public ClienteBO CBO
        {
            get { return cBO; }
            set
            {
                if (value == null)
                {
                    throw new BOException("Cliente deve ser escolhido");
                }
                ClienteSQLServer cSQL = new ClienteSQLServer();

                if (cSQL.Consulta(value.Cpf) == null)
                {
                    throw new BOException("Cliente não está cadastrado");
                }
                cBO = value;
                
            }
        }

        private float preco;

        public float Preco
        {
            get { return preco; }
            set {if (value  < 0)
                {
                    throw new BOException("Preço deve ser maior que 0(Zero)");
                }
                else
                {
                    preco = value;
                }
            }
        }

        private string companhia;

        public string Companhia
        {
            get { return companhia; }
            set { if (value == String.Empty)
                {
                    throw new BOException("Companhia deve ser indicada.");
                }
                else
                {companhia = value; }
            }
        }

        private DateTime dataIda;

        public DateTime DataIda
        {
            get { return dataIda; }
            set { if (value == null)
                {
                    throw new BOException("Data de ida deve ser escolhida");
                }
                else
                {dataIda = value; }
            }

        }
        private DateTime dataVolta;

        public DateTime DataVolta
        {
            get { return dataVolta; }
            set { if (value < dataIda) 
                {
                    throw new BOException("Data de volta deve ser maior que a data de ida");
                }
                else
                {dataVolta = value; }
            }
        }

        private int classe;

        public int Classe
        {
            get { return classe; }
            set {if (value <1 || value >3) 
                {
                    throw new BOException("Classe não conhecida");
                }
                else{ classe = value; }
            }
        }

        private UsuarioBO usuario;

        public UsuarioBO Usuario
        {
            get { return usuario; }
            set  { if (value == null)
                {
                    throw new BOException("Usuário deve ser escolhido.");
                }
                UsuarioSQLServer uSQL = new UsuarioSQLServer();

                if (uSQL.Consulta(value.Login) == null)
                {
                    throw new BOException("Usuário não está cadastrado.");
                }
                else 
                {
                    usuario = value;                     
                }
            }
        }

        private int destino;

        public int Destino
        {
            get { return destino; }
            set { if (value == null)
                {
                    throw new BOException("Destino deve ser escolhido.");
                }else {destino = value; }
            }
        }
    }
}
